#define MYNAME "gtc"
+const QStringList GtrnctrFormat::gtc_tags_to_ignore = {
+ "TrainingCenterDatabase",
+ "CourseFolder",
+ "Running",
+ "Biking",
+ "Other",
+ "Multisport"
+};
+
void
GtrnctrFormat::rd_init(const QString& fname)
{
xml_reader = new XmlGenericReader;
- xml_reader->xml_init(fname, this, gtc_map, nullptr, gtc_tags_to_ignore, nullptr);
+ xml_reader->xml_init(fname, this, gtc_map, nullptr, gtc_tags_to_ignore);
}
void
#include <QList> // for QList
#include <QString> // for QString
+#include <QStringList> // for QStringList
#include <QVector> // for QVector
#include <QXmlStreamAttributes> // for QXmlStreamAttributes
static constexpr int kGtcMaxNameLen = 15;
static constexpr const char* gtc_sportlist[] = { "Biking", "Running", "MultiSport", "Other" };
- static constexpr const char* gtc_tags_to_ignore[] = {
- "TrainingCenterDatabase",
- "CourseFolder",
- "Running",
- "Biking",
- "Other",
- "Multisport",
- nullptr,
- };
-
/* Member Functions */
[[gnu::format(printf, 3, 4)]] void gtc_write_xml(int indent, const char* fmt, ...);
/* Data Members */
+ static const QStringList gtc_tags_to_ignore;
gbfile* ofd{};
int lap_ct = 0;
int lap_s = 0;
#define MYNAME "kml"
+const QStringList KmlFormat::kml_tags_to_ignore = {
+ "kml",
+ "Document",
+ "Folder"
+};
+
+const QStringList KmlFormat::kml_tags_to_skip = {
+ "Camera",
+ "LookAt",
+ "styleUrl",
+ "snippet"
+};
+
const QVector<KmlFormat::mt_field_t> KmlFormat::mt_fields_def = {
{ wp_field::igc_enl, "igc_enl", "Engine Noise", "double" },
{ wp_field::igc_tas, "igc_tas", "True Airspd", "double" },
#ifndef KML_H_INCLUDED_
#define KML_H_INCLUDED_
-#include <bitset> // for bitset
-#include <tuple> // for tuple, make_tuple, tie
+#include <bitset> // for bitset
+#include <tuple> // for tuple, make_tuple, tie
-#include <QHash> // for QHash
-#include <QList> // for QList
-#include <QString> // for QString, QStringLiteral, operator+, operator!=
-#include <QVector> // for QVector
-#include <QXmlStreamAttributes> // for QXmlStreamAttributes
+#include <QHash> // for QHash
+#include <QList> // for QList
+#include <QString> // for QString, QStringLiteral, operator+, operator!=
+#include <QStringList> // for QStringList
+#include <QVector> // for QVector
+#include <QXmlStreamAttributes> // for QXmlStreamAttributes
#include "defs.h"
#include "format.h"
-#include "src/core/datetime.h" // for DateTime
-#include "src/core/file.h" // for File
-#include "src/core/xmlstreamwriter.h" // for XmlStreamWriter
-#include "units.h" // for UnitsFormatter
-#include "xmlgeneric.h" // for cb_cdata, cb_end, cb_start, xg_callback, xg_cb_type, xml_deinit, xml_ignore_tags, xml_init, xml_read, xg_tag_mapping
+#include "src/core/datetime.h" // for DateTime
+#include "src/core/file.h" // for File
+#include "src/core/xmlstreamwriter.h" // for XmlStreamWriter
+#include "units.h" // for UnitsFormatter
+#include "xmlgeneric.h" // for cb_cdata, cb_end, cb_start, xg_callback, xg_cb_type, xml_deinit, xml_ignore_tags, xml_init, xml_read, xg_tag_mapping
class KmlFormat : public Format
static constexpr const char* default_precision = "6";
static constexpr int kml_color_limit = 204; /* allowed range [0,255] */
- static constexpr const char* kml_tags_to_ignore[] = {
- "kml",
- "Document",
- "Folder",
- nullptr
- };
-
- static constexpr const char* kml_tags_to_skip[] = {
- "Camera",
- "LookAt",
- "styleUrl",
- "snippet",
- nullptr
- };
-
/* Member Functions */
void kml_init_color_sequencer(int steps_per_rev);
/* Data Members */
+ static const QStringList kml_tags_to_ignore;
+ static const QStringList kml_tags_to_skip;
static const QVector<mt_field_t> mt_fields_def;
track_trait_t kml_track_traits;
QHash<const route_head*, track_trait_t> kml_track_traits_hash;
#include "xmlgeneric.h"
+#include <algorithm> // for for_each
#include <utility> // for as_const
#include <QByteArray> // for QByteArray
void
XmlGenericReader::xml_common_init(const QString& fname, const char* encoding,
- const char* const* ignorelist, const char* const* skiplist)
+ const QStringList ignorelist, const QStringList skiplist)
{
rd_fname = fname;
}
xg_shortcut_taglist.clear();
- if (ignorelist != nullptr) {
- for (; ignorelist && *ignorelist; ++ignorelist) {
- xg_shortcut_taglist.insert(QString::fromUtf8(*ignorelist), xg_shortcut::sc_ignore);
- }
- }
- if (skiplist != nullptr) {
- for (; skiplist && *skiplist; ++skiplist) {
- xg_shortcut_taglist.insert(QString::fromUtf8(*skiplist), xg_shortcut::sc_skip);
- }
- }
+ std::for_each(ignorelist.cbegin(), ignorelist.cend(), [this](const QString& tag)->void {
+ xg_shortcut_taglist.insert(tag, xg_shortcut::sc_ignore);
+ });
+
+ std::for_each(skiplist.cbegin(), skiplist.cend(), [this](const QString& tag)->void {
+ xg_shortcut_taglist.insert(tag, xg_shortcut::sc_skip);
+ });
}
XmlGenericReader::xg_shortcut
#include <QList> // for QList
#include <QRegularExpression> // for QRegularExpression
#include <QString> // for QString
+#include <QStringList> // for QStringList
#include <QStringView> // for QStringView
#include <QTextCodec> // for QTextCodec
#include <QXmlStreamAttributes> // for QXmlStreamAttributes
template<class MyFormat>
void xml_init(const QString& fname, MyFormat* instance, const QList<xg_fmt_map_entry<MyFormat>>& tbl,
const char* encoding = nullptr,
- const char* const* ignorelist = nullptr,
- const char* const* skiplist = nullptr)
+ const QStringList ignorelist = QStringList(),
+ const QStringList skiplist = QStringList())
{
build_xg_tag_map(instance, tbl);
XgCallbackBase* xml_tbl_lookup(const QString& tag, xg_cb_type cb_type);
void xml_common_init(const QString& fname, const char* encoding,
- const char* const* ignorelist, const char* const* skiplist);
+ const QStringList ignorelist, const QStringList skiplist);
xg_shortcut xml_shortcut(QStringView name);
void xml_run_parser(QXmlStreamReader& reader);